Skip to main content

OpenFMB Fields Used by the Oneline

This document details which OpenFMB fields from which Equipment types are integrated into the One-Line UI application.

Overview​

The One-Line UI integrates with OpenFMB (Open Field Message Bus) profiles through NATS messaging to display real-time readings, statuses, and controls for electrical grid equipment. All equipment communicates using standardized OpenFMB profiles transmitted as Protocol Buffer messages over NATS.

Equipment Types Supported​

The following equipment types are supported in the One-Line UI:

  • Breaker
  • Capacitor/CapBank
  • ESS/Battery
  • EVSE/EV Charger
  • Generation
  • Load
  • Meter
  • Recloser
  • Regulator
  • Solar/PV
  • Switch

OpenFMB Profile Types​

Each equipment type uses three profile categories:

  1. Reading Profiles - Telemetry and measurement data
  2. Status Profiles - Equipment state and operational status
  3. Control Profiles - Command and control operations

Reading Fields (Measurements/Telemetry)​

All equipment types extract measurement data through the readingMMXU field using standardized JSONPath queries.

Reading Values Displayed​

Reading TypeDescriptionUnitsDisplay ConversionPhases
PhVPhase To Ground VoltageVolts÷ 1000 = kVA, B, C
PPVPhase-to-Phase VoltageVolts÷ 1000 = kVAB, BC, CA
WReal PowerWatts÷ 1000 = kWA, B, C
VArReactive PowerVolt-Ampere Reactive÷ 1000 = kVArA, B, C
VAApparent PowerVolt-Ampere÷ 1000 = kVAA, B, C
PFPower FactorDimensionless0.0 - 1.0A, B, C
ACurrent (shown for EV's)AmperesAA, B, C

Equipment Reading Profile Paths​

Equipment TypeJSONPath for ReadingsProfile Name
Breaker$.breakerReading..readingMMXUBreakerReadingProfile
Capacitor$..readingMMXUCapBankReadingProfile
ESS/Battery$..readingMMXUESSReadingProfile
EVSE/EV Charger$..readingMMXUEVSEReadingProfile
Generation$..readingMMXUGenerationReadingProfile
Load$..readingMMXULoadReadingProfile
Meter$..readingMMXUMeterReadingProfile
Recloser$..readingMMXURecloserReadingProfile
Regulator$..readingMMXURegulatorReadingProfile
Solar/PV$..readingMMXUSolarReadingProfile
Switch$..readingMMXUSwitchReadingProfile

Status Fields (Device Status)​

Status fields are equipment-specific and extracted from OpenFMB Status Profiles. The UI displays these as status chips or indicators.

Status Fields by Equipment Type​

Equipment TypeStatus JSONPathPossible ValuesDisplay FormatProfile Name
Breaker$.breakerStatus..Pos.phs3.stVal0, 1"Closed", "Open"BreakerStatusProfile
Switch$.switchStatus..stVal0, 1"Closed", "Open"SwitchStatusProfile
Recloser$.recloserStatus..Pos.phs3.stVal0, 1"Closed", "Open"RecloserStatusProfile
Capacitor$.capBankStatus..Pos.phs3.stVal0, 1"Closed", "Open"CapBankStatusProfile
Load$.loadStatus..state.valueStateKind enum"On", "Off" + controllabilityLoadStatusProfile
Generation$.generationStatus..valueStateKind enum"On", "Off", "Standby"GenerationStatusProfile
Solar/PV$.solarStatus..valueStateKind enum"On", "Off", "Standby"SolarStatusProfile
Regulator$.regulatorStatus..phs3.stValnumberStep position (numeric)RegulatorStatusProfile
ESS/Battery$.essStatus.essStatusZBATMultiple fieldsSee ESS Status Fields belowESSStatusProfile
EVSE/Charger$.evseStatus.eventAndStatusDESEMultiple fieldsSee EVSE Status Fields belowEVSEStatusProfile

ESS/Battery Status Fields​

Battery/ESS equipment displays multiple status fields extracted from essStatusZBAT:

Field NameDescriptionDisplay Format
stateOperational state"On", "Off", "Standby"
SoCState of ChargePercentage (0-100)
Grid ModeGrid connection mode"Grid Following", "Grid Forming"
Power valuesActive/Reactive powerkW, kVAr
Voltage valuesVoltage measurementskV

EVSE/EV Charger Status Fields​

EVSE equipment displays multiple status fields extracted from eventAndStatusDESE:

OpenFMB Field PathFriendly LabelDescriptionDisplay Format
eventAndStatusDESE[].PointStatus.state.valueCharging State KindCurrent charging state"Idle", "Charging", "EVConnected", "SuspendedEV", "SuspendedEVSE"
eventAndStatusDESE[].PointStatus.limitWOperation.maxLimParameter.modEnaMax Limit W EnabledMax power limit flag"true", "false"
eventAndStatusDESE[].PointStatus.limitWOperation.wMaxSptValLimit W Operation SetpointMax power limit valuekW (value ÷ 1000)
eventAndStatusDESE[].eventAndStatusDEAO.eventAndStatusDEEV.Soc.magDEAO.DEEV.SocState of ChargePercentage (0-100)
eventAndStatusDESE[].eventAndStatusDEDO.eventAndStatusDEEV.Soc.magDEDO.DEEV.SocState of ChargePercentage (0-100)

Control Fields​

Control fields allow operators to send commands to equipment. Each equipment type has specific control profiles and fields.

Breaker/Switch/Recloser/Capacitor Controls​

Equipment TypeControl Field PathValue TypeControl ActionProfile Name
BreakerbreakerDiscreteControl.breakerDiscreteControlXCBR.discreteControlXCBR.Pos.phs3.ctlValboolean1 = Open, 0 = ClosedBreakerDiscreteControlProfile
SwitchswitchDiscreteControl.switchDiscreteControlXSWI.Pos.phs3.ctlValboolean1 = Open, 0 = ClosedSwitchDiscreteControlProfile
RecloserrecloserDiscreteControl.recloserDiscreteControlRCLO.Pos.phs3.ctlValboolean1 = Open, 0 = ClosedRecloserDiscreteControlProfile
CapacitorcapBankControl.capBankDiscreteControlYPSH.control.Pos.phs3.ctlValboolean1 = Open, 0 = ClosedCapBankDiscreteControlProfile

UI Control: Open/Close buttons

Load Controls​

Control FieldFull PathValue TypeDisplay UnitProfile Name
W (Real Power)loadControl.loadControlFSCC.loadControlScheduleFSCH.ValACSG.schPts[0].scheduleParameter.ScheduleParameterKind_W_net_magnumberkWLoadControlProfile
VAr (Reactive Power)loadControl.loadControlFSCC.loadControlScheduleFSCH.ValACSG.schPts[0].scheduleParameter.ScheduleParameterKind_VAr_net_magnumberkVArLoadControlProfile
PF (Power Factor)loadControl.loadControlFSCC.loadControlScheduleFSCH.ValACSG.schPts[0].scheduleParameter.ScheduleParameterKind_PF_net_magnumber0.0 - 1.0LoadControlProfile

UI Control: Sliders for W, VAr, PF setpoints

Regulator/Transformer Step Controls​

Control FieldFull PathValue TypeControl ActionProfile Name
Raise (Step Up)regulatorControl.regulatorDiscreteControlATCC.TapOpR.phs3.ctlValbooleantrue = Raise stepRegulatorDiscreteControlProfile
Lower (Step Down)regulatorControl.regulatorDiscreteControlATCC.TapOpL.phs3.ctlValbooleantrue = Lower stepRegulatorDiscreteControlProfile

UI Control: Raise/Lower step buttons

Battery/ESS Controls​

Control FieldFull PathValue TypePossible ValuesProfile Name
State ControlessControl.essControlFSCC.essControlScheduleFSCH.ValDCSG.crvPts[0].control.state.valueenumStateKind_on, StateKind_off, StateKind_standbyESSControlProfile
Grid Mode ControlessControl.essControlFSCC.essControlScheduleFSCH.ValDCSG.crvPts[0].control.mode.setValenumGridConnectModeKind_VSI_PQ (Grid Following), GridConnectModeKind_VSI_ISO (Grid Forming)ESSControlProfile
Power (P) ControlessControl.essControlFSCC.controlScheduleFSCH.ValACSG.schPts[0].scheduleParameter.ScheduleParameterKind_W_net_magnumberkWESSControlProfile
Reactive Power (Q) ControlessControl.essControlFSCC.controlScheduleFSCH.ValACSG.schPts[0].scheduleParameter.ScheduleParameterKind_VAr_net_magnumberkVArESSControlProfile
Reset ControlessControl.essControlFSCC.essControlScheduleFSCH.ValDCSG.crvPts[0].control.reset.ctlValbooleantrue = ResetESSControlProfile

UI Control: State dropdown, Grid Mode dropdown, P/Q text fields, Reset button

Solar/PV Controls​

Control FieldFull PathValue TypePossible ValuesProfile Name
State ControlsolarControl.solarControlFSCC.SolarControlScheduleFSCH.ValDCSG.crvPts[0].control.state.valueenumStateKind_on, StateKind_off, StateKind_standbySolarControlProfile
Power (P) ControlsolarControl.solarControlFSCC.controlScheduleFSCH.ValACSG.schPts[0].scheduleParameter.ScheduleParameterKind_W_net_magnumberkWSolarControlProfile
Reactive Power (Q) ControlsolarControl.solarControlFSCC.controlScheduleFSCH.ValACSG.schPts[0].scheduleParameter.ScheduleParameterKind_VAr_net_magnumberkVArSolarControlProfile

UI Control: State dropdown, P/Q text fields

EVSE/EV Charger Controls​

Control FieldFull PathValue TypePossible ValuesProfile Name
Charging State ControlevseControl.deseControlScheduleFSCH.ValDCSG.crvPts[0].control.state.valueenumChargingStateKind_Idle, ChargingStateKind_Charging, ChargingStateKind_EVConnected, ChargingStateKind_SuspendedEV, ChargingStateKind_SuspendedEVSEEVSEControlProfile
Power (P) ControlevseControl.controlFSCC.controlScheduleFSCH.ValACSG.schPts[0].scheduleParameter.ScheduleParameterKind_W_net_magnumberkWEVSEControlProfile
Maximum Power Limit EnabledevseControl.controlFSCC.controlScheduleFSCH.ValACSG.schPts[0].limitWOperation.maxLimParameter.modEnabooleantrue/falseEVSEControlProfile
Maximum Power Limit ValueevseControl.controlFSCC.controlScheduleFSCH.ValACSG.schPts[0].limitWOperation.wMaxSptValnumberkWEVSEControlProfile
Minimum Power Limit EnabledevseControl.controlFSCC.controlScheduleFSCH.ValACSG.schPts[0].limitWOperation.minLimParameter.modEnabooleantrue/falseEVSEControlProfile
Minimum Power Limit ValueevseControl.controlFSCC.controlScheduleFSCH.ValACSG.schPts[0].limitWOperation.wMinSptValnumberkWEVSEControlProfile
Reset ControlevseControl.controlFSCC.controlScheduleFSCH.ValDCSG.crvPts[0].control.reset.ctlValbooleantrue = ResetEVSEControlProfile

UI Control: P Value field, P Value Max field, Min/Max Operation Limit checkboxes, Reset button

Generation Controls​

Control FieldFull PathValue TypePossible ValuesProfile Name
State ControlgenerationControl.generationControlFSCC.GenerationControlScheduleFSCH.ValDCSG.crvPts[0].state.valueenumStateKind_on, StateKind_off, StateKind_standbyGenerationControlProfile

UI Control: State dropdown


NATS Message Subject Patterns​

All OpenFMB messages follow a standardized NATS subject pattern:

openfmb.{module}.{ProfileType}.{mrid}

Subject Pattern Components​

ComponentDescriptionExample
openfmbNamespace prefixopenfmb
moduleOpenFMB module namebreakermodule, loadmodule, essmodule
ProfileTypeMessage typeReadingProfile, StatusProfile, ControlProfile
mridUnique equipment identifier550e8400-e29b-41d4-a716-446655440000 (UUID)

Subject Pattern Examples by Profile Type​

Profile TypeSubject Pattern Example
Readingopenfmb.breakermodule.BreakerReadingProfile.550e8400-e29b-41d4-a716-446655440000
Statusopenfmb.loadmodule.LoadStatusProfile.550e8400-e29b-41d4-a716-446655440001
Controlopenfmb.essmodule.ESSControlProfile.550e8400-e29b-41d4-a716-446655440002
Discrete Controlopenfmb.breakermodule.BreakerDiscreteControlProfile.550e8400-e29b-41d4-a716-446655440000

Summary Tables​

OpenFMB Equipment Profiles Used By Equipment​

Equipment TypeReading ProfileStatus ProfileControl Profile
BreakerBreakerReadingProfileBreakerStatusProfileBreakerDiscreteControlProfile
Capacitor/CapBankCapBankReadingProfileCapBankStatusProfileCapBankDiscreteControlProfile
ESS/BatteryESSReadingProfileESSStatusProfileESSControlProfile
EVSE/EV ChargerEVSEReadingProfileEVSEStatusProfileEVSEControlProfile
GenerationGenerationReadingProfileGenerationStatusProfileGenerationControlProfile
LoadLoadReadingProfileLoadStatusProfileLoadControlProfile
RecloserRecloserReadingProfileRecloserStatusProfileRecloserDiscreteControlProfile
RegulatorRegulatorReadingProfileRegulatorStatusProfileRegulatorDiscreteControlProfile
Solar/PVSolarReadingProfileSolarStatusProfileSolarControlProfile
SwitchSwitchReadingProfileSwitchStatusProfileSwitchDiscreteControlProfile

Additional Resources​

  • OpenFMB Official Documentation: https://openfmb.github.io/
  • Protocol Buffers Documentation: https://protobuf.dev/
  • NATS Messaging: All messages use NATS pub/sub
  • Message Format: Protocol Buffer (binary) over network, converted to JSON in UI Code for UI processing